package com.base.kongjian.service;

import java.util.Map;

import com.base.kongjian.entity.Weibo;
import com.mysteel.page.Page;

/**
 * 
 * @author chendonglin
 *
 */
public interface WeiboService
{
	/**
	 * 发表微博
	 * @param weibo
	 */
	void saveWeibo(Weibo weibo);
	/**
	 * 通过ID 获得
	 * @param id
	 * @return
	 */
	Weibo getById(long id);
	/**
	 * 通过ID 删除
	 * @param id
	 */
	void deleteById(long id);
	/**
	 * 多查询
	 * @param params
	 * @param currentPageNum
	 * @param maxPageRowCount
	 * @return
	 */
	Page<Weibo> queryWeibo(Map<String, Object> params, int currentPageNum, int maxPageRowCount);
	/**
	 * 更新
	 * @param weibo
	 */
	void updateWeibo(Weibo weibo);
	/**
	 * 增加被赞总数
	 * @param id
	 */
	void addPraiseCount(long id, long sharerId);
	/**
	 * 增加总评论数
	 * @param id
	 */
	void addCommentCount(long id, long sharerId);
	/**
	 * 增加收藏数
	 * @param id
	 */
	void addCollectionCount(long id, long sharerId);
	/**
	 * 增加转发数
	 * @param id
	 */
	void addTransmitCount(long id, long sharerId);
	/**
	 * 增加浏览数
	 * @param id
	 */
	void addBrowseCount(long id);
	/**
	 * 获得总的被赞数
	 * @param id
	 * @return
	 */
	long getPraiseCount(long id);
	/**
	 * 获得总的评论数
	 * @param id
	 * @return
	 */
	long getCommentCount(long id);
	/**
	 * 获得总的收藏数
	 * @param id
	 * @return
	 */
	long getCollectionCount(long id);
	/**
	 * 获得总的浏览数
	 * @param id
	 * @return
	 */
	long getBrowseCount(long id);

	/**
	 * 获得转发数
	 * @param id
	 * @return
	 */
	long getTransmitCount(long id);
	
}
